home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Mac Game Programming Gurus / TricksOfTheMacGameProgrammingGurus.iso / More Source / C⁄C++ / Peter's Final Project / jpeg-5b / cjpeg.1 < prev    next >
Text File  |  1994-12-12  |  10KB  |  281 lines

  1. .TH CJPEG 1 "12 December 1994"
  2. .SH NAME
  3. cjpeg \- compress an image file to a JPEG file
  4. .SH SYNOPSIS
  5. .B cjpeg
  6. [
  7. .I options
  8. ]
  9. [
  10. .I filename
  11. ]
  12. .LP
  13. .SH DESCRIPTION
  14. .LP
  15. .B cjpeg
  16. compresses the named image file, or the standard input if no file is
  17. named, and produces a JPEG/JFIF file on the standard output.
  18. The currently supported input file formats are: PPM (PBMPLUS color
  19. format), PGM (PBMPLUS gray-scale format), BMP, GIF, Targa, and RLE (Utah Raster
  20. Toolkit format).  (RLE is supported only if the URT library is available.)
  21. .SH OPTIONS
  22. All switch names may be abbreviated; for example,
  23. .B \-grayscale
  24. may be written
  25. .B \-gray
  26. or
  27. .BR \-gr .
  28. Most of the "basic" switches can be abbreviated to as little as one letter.
  29. Upper and lower case are equivalent (thus
  30. .B \-GIF
  31. is the same as
  32. .BR \-gif ).
  33. British spellings are also accepted (e.g.,
  34. .BR \-greyscale ),
  35. though for brevity these are not mentioned below.
  36. .PP
  37. The basic switches are:
  38. .TP
  39. .BI \-quality " N"
  40. Scale quantization tables to adjust image quality.  Quality is 0 (worst) to
  41. 100 (best); default is 75.  (See below for more info.)
  42. .TP
  43. .B \-grayscale
  44. Create monochrome JPEG file from color input.  Be sure to use this switch when
  45. compressing a grayscale GIF file, because
  46. .B cjpeg
  47. isn't bright enough to notice whether a GIF file uses only shades of gray.
  48. By saying
  49. .BR \-grayscale ,
  50. you'll get a smaller JPEG file that takes less time to process.
  51. .TP
  52. .B \-optimize
  53. Perform optimization of entropy encoding parameters.  Without this, default
  54. encoding parameters are used.
  55. .B \-optimize
  56. usually makes the JPEG file a little smaller, but
  57. .B cjpeg
  58. runs somewhat slower and needs much more memory.  Image quality and speed of
  59. decompression are unaffected by
  60. .BR \-optimize .
  61. .TP
  62. .B \-targa
  63. Input file is Targa format.  Targa files that contain an "identification"
  64. field will not be automatically recognized by
  65. .BR cjpeg ;
  66. for such files you must specify
  67. .B \-targa
  68. to make
  69. .B cjpeg
  70. treat the input as Targa format.
  71. For most Targa files, you won't need this switch.
  72. .PP
  73. The
  74. .B \-quality
  75. switch lets you trade off compressed file size against quality of the
  76. reconstructed image: the higher the quality setting, the larger the JPEG file,
  77. and the closer the output image will be to the original input.  Normally you
  78. want to use the lowest quality setting (smallest file) that decompresses into
  79. something visually indistinguishable from the original image.  For this
  80. purpose the quality setting should be between 50 and 95; the default of 75 is
  81. often about right.  If you see defects at
  82. .B \-quality
  83. 75, then go up 5 or 10 counts at a time until you are happy with the output
  84. image.  (The optimal setting will vary from one image to another.)
  85. .PP
  86. .B \-quality
  87. 100 will generate a quantization table of all 1's, eliminating loss in the
  88. quantization step (but there is still information loss in subsampling, as well
  89. as roundoff error).  This setting is mainly of interest for experimental
  90. purposes.  Quality values above about 95 are
  91. .B not
  92. recommended for normal use; the compressed file size goes up dramatically for
  93. hardly any gain in output image quality.
  94. .PP
  95. In the other direction, quality values below 50 will produce very small files
  96. of low image quality.  Settings around 5 to 10 might be useful in preparing an
  97. index of a large image library, for example.  Try
  98. .B \-quality
  99. 2 (or so) for some amusing Cubist effects.  (Note: quality
  100. values below about 25 generate 2-byte quantization tables, which are
  101. considered optional in the JPEG standard.
  102. .B cjpeg
  103. emits a warning message when you give such a quality value, because some
  104. commercial JPEG programs may be unable to decode the resulting file.  Use
  105. .B \-baseline
  106. if you need to ensure compatibility at low quality values.)
  107. .PP
  108. Switches for advanced users:
  109. .TP
  110. .B \-dct int
  111. Use integer DCT method (default).
  112. .TP
  113. .B \-dct fast
  114. Use fast integer DCT (less accurate).
  115. .TP
  116. .B \-dct float
  117. Use floating-point DCT method.
  118. The float method is very slightly more accurate than the int method, but is
  119. much slower unless your machine has very fast floating-point hardware.  Also
  120. note that results of the floating-point method may vary slightly across
  121. machines, while the integer methods should give the same results everywhere.
  122. The fast integer method is much less accurate than the other two.
  123. .TP
  124. .BI \-restart " N"
  125. Emit a JPEG restart marker every N MCU rows, or every N MCU blocks if "B" is
  126. attached to the number.
  127. .B \-restart 0
  128. (the default) means no restart markers.
  129. .TP
  130. .BI \-smooth " N"
  131. Smooth the input image to eliminate dithering noise.  N, ranging from 1 to
  132. 100, indicates the strength of smoothing.  0 (the default) means no smoothing.
  133. .TP
  134. .BI \-maxmemory " N"
  135. Set limit for amount of memory to use in processing large images.  Value is
  136. in thousands of bytes, or millions of bytes if "M" is attached to the
  137. number.  For example,
  138. .B \-max 4m
  139. selects 4000000 bytes.  If more space is needed, temporary files will be used.
  140. .TP
  141. .BI \-outfile " name"
  142. Send output image to the named file, not to standard output.
  143. .TP
  144. .B \-verbose
  145. Enable debug printout.  More
  146. .BR \-v 's
  147. give more output.  Also, version information is printed at startup.
  148. .TP
  149. .B \-debug
  150. Same as
  151. .BR \-verbose .
  152. .PP
  153. The
  154. .B \-restart
  155. option inserts extra markers that allow a JPEG decoder to resynchronize after
  156. a transmission error.  Without restart markers, any damage to a compressed
  157. file will usually ruin the image from the point of the error to the end of the
  158. image; with restart markers, the damage is usually confined to the portion of
  159. the image up to the next restart marker.  Of course, the restart markers
  160. occupy extra space.  We recommend
  161. .B \-restart 1
  162. for images that will be transmitted across unreliable networks such as Usenet.
  163. .PP
  164. The
  165. .B \-smooth
  166. option filters the input to eliminate fine-scale noise.  This is often useful
  167. when converting GIF files to JPEG: a moderate smoothing factor of 10 to 50
  168. gets rid of dithering patterns in the input file, resulting in a smaller JPEG
  169. file and a better-looking image.  Too large a smoothing factor will visibly
  170. blur the image, however.
  171. .PP
  172. Switches for wizards:
  173. .TP
  174. .B \-arithmetic
  175. Use arithmetic coding rather than Huffman coding.  (Not currently
  176. supported for legal reasons.)
  177. .TP
  178. .B \-baseline
  179. Force a baseline JPEG file to be generated.  This clamps quantization values
  180. to 8 bits even at low quality settings.
  181. .TP
  182. .B \-nointerleave
  183. Generate noninterleaved JPEG file (not yet supported).
  184. .TP
  185. .BI \-qtables " file"
  186. Use the quantization tables given in the specified file.  The file should
  187. contain one to four tables (64 values each) as plain text.  Comments preceded
  188. by '#' may be included in the file.  The tables are implicitly numbered
  189. 0,1,etc.  If
  190. .BI \-quality " N"
  191. is also specified, the values in the file are scaled according to
  192. .BR cjpeg 's
  193. quality scaling curve.
  194. .TP
  195. .BI \-qslots " N[,...]"
  196. Select which quantization table to use for each color component.  By default,
  197. table 0 is used for luminance and table 1 for chrominance components.
  198. .TP
  199. .BI \-sample " HxV[,...]"
  200. Set JPEG sampling factors.  If you specify fewer H/V pairs than there are
  201. components, the remaining components are set to 1x1 sampling.  The default
  202. setting is equivalent to \fB\-sample 2x2\fR.
  203. .PP
  204. The "wizard" switches are intended for experimentation with JPEG.  If you
  205. don't know what you are doing, \fBdon't use them\fR.  You can easily produce
  206. files with worse image quality and/or poorer compression than you'll get from
  207. the default settings.  Furthermore, these switches should not be used when
  208. making files intended for general use, because not all JPEG implementations
  209. will support unusual JPEG parameter settings.
  210. .SH EXAMPLES
  211. .LP
  212. This example compresses the PPM file foo.ppm with a quality factor of
  213. 60 and saves the output as foo.jpg:
  214. .IP
  215. .B cjpeg \-quality
  216. .I 60 foo.ppm
  217. .B >
  218. .I foo.jpg
  219. .SH HINTS
  220. Color GIF files are not the ideal input for JPEG; JPEG is really intended for
  221. compressing full-color (24-bit) images.  In particular, don't try to convert
  222. cartoons, line drawings, and other images that have only a few distinct
  223. colors.  GIF works great on these, JPEG does not.  If you want to convert a
  224. GIF to JPEG, you should experiment with
  225. .BR cjpeg 's
  226. .B \-quality
  227. and
  228. .B \-smooth
  229. options to get a satisfactory conversion.
  230. .B \-smooth 10
  231. or so is often helpful.
  232. .PP
  233. Avoid running an image through a series of JPEG compression/decompression
  234. cycles.  Image quality loss will accumulate; after ten or so cycles the image
  235. may be noticeably worse than it was after one cycle.  It's best to use a
  236. lossless format while manipulating an image, then convert to JPEG format when
  237. you are ready to file the image away.
  238. .PP
  239. The
  240. .B \-optimize
  241. option to
  242. .B cjpeg
  243. is worth using when you are making a "final" version for posting or archiving.
  244. It's also a win when you are using low quality settings to make very small
  245. JPEG files; the percentage improvement is often a lot more than it is on
  246. larger files.
  247. .SH ENVIRONMENT
  248. .TP
  249. .B JPEGMEM
  250. If this environment variable is set, its value is the default memory limit.
  251. The value is specified as described for the
  252. .B \-maxmemory
  253. switch.
  254. .B JPEGMEM
  255. overrides the default value specified when the program was compiled, and
  256. itself is overridden by an explicit
  257. .BR \-maxmemory .
  258. .SH SEE ALSO
  259. .BR djpeg (1),
  260. .BR rdjpgcom (1),
  261. .BR wrjpgcom (1)
  262. .br
  263. .BR ppm (5),
  264. .BR pgm (5)
  265. .br
  266. Wallace, Gregory K.  "The JPEG Still Picture Compression Standard",
  267. Communications of the ACM, April 1991 (vol. 34, no. 4), pp. 30-44.
  268. .SH AUTHOR
  269. Independent JPEG Group
  270. .SH BUGS
  271. Arithmetic coding is not supported for legal reasons.
  272. .PP
  273. Not all variants of BMP and Targa file formats are supported.
  274. .PP
  275. The
  276. .B \-targa
  277. switch is not a bug, it's a feature.  (It would be a bug if the Targa format
  278. designers had not been clueless.)
  279. .PP
  280. Still not as fast as we'd like.
  281.